<?php

    // подцепляем наш сайт к системе, для того, чтобы система могла работать с нами
    $mikron->Site = new tosmr();
    $mikron->OperatingInstructions->AddFunction('MAINMENU', 'getMainMenu', $mikron->Site);
    $mikron->OperatingInstructions->AddFunction('TOSMR_PROFILE', 'getToSMRProfile', $mikron->Site);

    $mikron->Applications->Add($mikron->Site);

    // класс сайта
    class tosmr
    {

        public $Version = 1;
        
        /**
        * Ajax method for tosmr-application
        * 
        * @param mixed $parameters
        * @return mixed
        */
        public function getcities($parameters)
        {
            global $mikron;
            $country = $mikron->Tools->GetParam($parameters, 'country', null);
            if(!is_numeric($country))
            {
                throw new Exception('Attribute not defined.');
            }
            $cities = $mikron->Queries->Query('CITY', null, new Criterion('country', $country));
            ob_start();
                echo '<options><option value="0" style="color: #aaa; ">Выберите город</option>';
                while($city = $cities->fetch())
                {
                    echo sprintf('<option value="%s">%s</option>', $city->id, $city->name->value);
                }
                echo '</options>';
            $returnBuffer = ob_get_clean();
            echo $returnBuffer;
            exit;
        }

        function __construct()
        {
            global $mikron;
            $mikron->Applications->Add($this);
            $mikron->Handlers->AddAuthorizationHandler('AuthorizationUser', $this);
        }

        /**
        * Calling on user authorized
        * @param mixed $result MikronException Or T_USER
        */
        public function AuthorizationUser($result, $login, $password)
        {echo 324;exit;
            global $mikron;
            if (!($result instanceof T_USER))
            {
                return true;
            }
            return false;
        }


        // Схемы сайта
        function Schemas()
        {
            $ret = Array();
            // файл схемы для текущего сайта
            $ret[] = Array('file' => dirname(__FILE__).'/schema.xml', 'name' => 'Схема текущего сайта');
            return $ret;
        }

        // Вызывается при обновлении сайта
        function Setup()
        {
        }

        // Вызывается из процедуры $mikron->Page->StartBody();
        function main()
        {       
        }
        
        function getToSMRProfile($parameters)
        {
            global $mikron;
            
            if(!$mikron->Users->Logged())
            {
                return false;
            }
            echo '<div class="tosmr_profile">';
            echo $mikron->Users->CurrentUser()->user->login->value;
            echo '<br /><a href="/?logout" title="Закрыть кабинет">Выход</a></div>';
        }

        /* Отрисовка главного меню */
        function getMainMenu()
        {
            global $mikron;
            ob_start();
            try
            {
                echo '<div id="tosmr_main_menu">';
                $mikron->Tools->SiteMenu->DrawMenu($mikron->Tools->SiteMenu->getSiteMenu());
                echo '</div>';
                echo ob_get_clean();
            }
            catch(Exception $ex)
            {
                ob_clean();
                echo '<span class="error_font">Ошибка построения меню</span>';
            }
        }

    }

?>